/**
 * <pre>
 * 紫光软件系统有限公司广电事业部
 * Copyright (C): 2010
 * 
 * 文件名称：
 * com.unis.iptv.common.utils.GlobalUtil.java
 * 
 * 文件描述: 
 * TODO
 * 全局变量及可配制参数
 * Notes:
 * 修改历史(作者/日期/改动描述):
 * 杨飞宇/2011-1-10/初始化版本。
 * </pre>
 */
package com.unis.iptv.common.utils;

import java.sql.Timestamp;

import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;

import com.unis.iptv.client.RetryHandler;
import com.unis.iptv.property.PropertyConfig;

/**
 * @date 2011-1-10
 * @author 杨飞宇
 */
public class GlobalUtil {
	/**
	 * 初始化本地全局变量从配制文件
	 * 
	 * @author 杨飞宇 @2013-1-2
	 */
	public static void initConfiguration() {
		areaAlias = PropertyConfig.getProperty("areaAlias");
		temId = PropertyConfig.getIntProperty("temId");
		crawlerNum = new Timestamp(System.currentTimeMillis()).toString()
				.substring(0, 10);
		authServer = PropertyConfig.getProperty("authServer");
		stbAccount = PropertyConfig.getProperty("stbAccount");
		stbNum = PropertyConfig.getProperty("stbNum");
		mac = PropertyConfig.getProperty("mac");
		stbPassword = PropertyConfig.getProperty("stbPassword");
		picSavePath = PropertyConfig.getProperty("picSavePath");
		ClientConnectionManager cm = new ThreadSafeClientConnManager();
		httpClient = new DefaultHttpClient(cm);
		httpClient.setHttpRequestRetryHandler(new RetryHandler());
	}
	
	public static String areaAlias;
	public static int temId;
	public static String crawlerNum;
	public static String authServer;// 机顶盒认证服务器
	public static String stbAccount;// 机顶盒账户账号
	public static String stbNum;// 机顶盒内的ID
	public static String mac;// MAC地址
	public static String stbPassword;// 机顶盒账户密码
	public static DefaultHttpClient httpClient = null;
	public static String baseUrl;// http://10.255.128.8:8080
	public static String picSavePath;
	//
	// ?
	// ?
	// ?
	// ?
	// ?
	// ?
	// ?
	// ?
	// ?
	
	// public static Integer isProxy = 0;
	// // public static String epgMac = PropertyConfig.getEPGMac();
	// public static String jmsServerUri = PropertyConfig.getJMSServerURI();
	// // 判断是否有认证信息如果没有就用抓包方式去抓取EPG 1是抓包 0不是抓包
	// // public static Integer isCap = PropertyConfig.getIsCap();
	// /**
	// * ip和端口
	// */
	// public static String ip = PropertyConfig.getEPGIp();
	// public static String cookie = PropertyConfig.getAuthCookie();
	//
	// public static boolean threadFlag = true;
	// public static String startTime = DateUtil
	// .formatYearMonthDayTime(new Date());
	// public static Hashtable<Long, Thread> threadPool = new Hashtable<Long,
	// Thread>();
	// main-Url
	// public static String indexUrl = "";
	// public static String httpUri = "";
	// // vod(点播)-Url
	// public static String vodUrl = "http://" + httpUri
	// + "/iptvepg/frame675/vod_portal.jsp?leefocus=leftlinker2";
	// // false为不间隔采集，true为间隔指定时间采集
	// public static boolean isInterval = false;
	// /**
	// * 2012年7月30日 11:00:38 当前任务状态
	// 0-等待状态，1-运行中，2-已结束/无此任务，3-任务开始执行，4-正常结束，5-异常结束
	// */
	// public static Integer taskStatus = 0;
	// /**
	// * 用户终端采集前端的软件模块启动/停止前，向统一监管平台上报服务器启动/停止状态信息。
	// * b.用户终端采集前端的软件模块定时上报心跳消息，心跳消息主要包括系统运行状态，即运行正常或负载过高。
	// * 0-停止，1-启动，2-运行正常，3-负载过高 0状态是用户终端采集前端的软件模块停止时上报的状态
	// * 1状态是用户终端采集前端的软件模块启动时上报的状态 2状态是正常状态，用户终端采集前端会定时（如10分钟）进行状态信息上报。
	// * 3状态是负载过高状态，用户终端采集前端会定时（如10分钟）进行状态信息上报 。
	// */
	// public static Integer serverStatus = 0;
	// public static long taskId = -1;
	// public static String mainUrl = null;
	// // private static Log log = LogFactory.getLog("iptvCourse");
	// public static String http = "http://" + httpUri + "/";
	// // 提取程序全局运行状态 是否可以运行
	// public static boolean flag = true;
	// // 网页编码
	// public static String charSet = null;
	// // 百分比状态
	//
	// public static String epgId = "";
	// public static Integer stbId = null;
	// public static Integer userId = null;// 用户ID
	// public static String stbName = null;// 机顶盒名称
	
	// public static String terminalProducer = null;// 机顶盒生产厂商
	// public static String terminalModel = null;// 机顶盒型号
	// public static Integer status = null;// 机顶盒状态
	// public static String description = null;// 描述
	// public static Timestamp insertTime = null;// 插入时间
	// public static Timestamp updateTime = null;// 更新时间
	// public static String back_rtsp = "rtsp://172.25.0.38:554/TV/7";// 更新时间
	
	// public static String userToken = null;
	// // 程序始化状态 为true时为机顶盒 成功
	// public static Boolean initStatus = false;
	
	// // 点播分类总数
	// public static int vodCount = 0;
	// public static String domain = null;
	// public static String epgDomain = null;
	// public static String epgUrl = null;
	// /** 认证需首次访问的地址 **/
	// public static String baseUrl = null;
	// public static String packageId = null;
	// /** 主页地址 */
	// public static String localHomeUrl = null;
	// /** 页面地址前 */
	// public static String pageUrl = null;
	//
	// public static String messageID = null;
	
	// private static void setStbAuthInfo(Stb stb) {
	// if (null == stb)
	// GlobalUtil.initStatus = false;
	// GlobalUtil.stbId = stb.getStbId();
	// GlobalUtil.userId = stb.getUserId();// 用户ID
	// GlobalUtil.stbName = stb.getStbName();// 机顶盒名称
	// GlobalUtil.stbNum = stb.getStbNum();// 机顶盒内的ID
	// GlobalUtil.authServer = stb.getAuthServer();// 机顶盒认证服务器
	// GlobalUtil.mac = stb.getMac();// MAC地址
	// GlobalUtil.ipAddress = stb.getIpAddress();// IP地址
	// GlobalUtil.stbAccount = stb.getStbAccount();// 机顶盒账户账号
	// GlobalUtil.stbPassword = stb.getStbPassword();// 机顶盒账户密码
	// GlobalUtil.terminalProducer = stb.getTerminalProducer();// 机顶盒生产厂商
	// GlobalUtil.terminalModel = stb.getTerminalModel();// 机顶盒型号
	// GlobalUtil.status = stb.getStatus();// 机顶盒状态
	// GlobalUtil.description = stb.getDescription();// 描述
	// GlobalUtil.insertTime = stb.getInsertTime();// 插入时间
	// GlobalUtil.updateTime = stb.getUpdateTime();// 更新时间
	//
	// GlobalUtil.initStatus = true;
	// }
	
	// public static void initAuthentication(Stb stb) throws Exception {
	// ClientConnectionManager cm = new ThreadSafeClientConnManager();
	// httpClient = new DefaultHttpClient(cm);
	// httpClient.setHttpRequestRetryHandler(new RetryHandler());
	// log.info("配制文件初始化完成！");
	// GlobalUtil.initStatus = true;
	// if (stb != null) {
	// setStbAuthInfo(stb);
	// for (int i = 0; i < 5; i++) {
	// if (Authentication.Auth()) {
	// GlobalUtil.initStatus = true;
	// break;
	// }
	// Thread.sleep(3000);
	// Authentication.Auth();
	// String html = ClientCustomContext
	// .getCustomContext(GlobalUtil.epgUrl);
	// log.info("机顶盒主页面地址:  " + html);
	// String regex = "window\\.location\\s*=\\s*[\"'](.*)[\"']";
	// String mainUrl = GlobalUtil.domain
	// + RegexUtil.compileString(regex, html);
	// html = ClientCustomContext.getCustomContext(mainUrl);
	// mainUrl = RegexUtil.compileString(regex, html);
	// html = ClientCustomContext.getCustomContext(mainUrl);
	// }
	// }
	//
	// }
	
	// /**
	// * 代替重复URL
	// */
	// public static String doMainUrl = "http://" + httpUri +
	// "/iptvepg/frame675/";
	// public static String doPostUrl = "http://" + httpUri + "/iptvepg/";
	// public static int isReport = 0;
	
}
